![]() |
|||
![]()
|
![]() |
![]() Click Here! |
![]() |
Fair Queueing with Rate and Buffer Feedback The fair queueing with rate and buffer feedback method requires that the switches compute a fair share of VCs and monitor each VCs queue length. A source periodically sends an RM cell to determine the bandwidth and buffer usage at its bottleneck. Upon receiving an RM cell from the source, a switch computes a fair share of VCs, which is computed as the inverse of the interval between the cell arrival and its transmission. Then, the switch assigns the minimum of the fair share and monitors each VCs queue length and assigns the maximum of queue length. Thus, each switch implements fair queueing, which consists of maintaining a separate queue for each VC and computing the time at which the cell would finish transmission if the queue were to be served round-robin, one bit at a time. The cells are scheduled to transmit in this computed time order. The main problem is that the method requires per-VC (i.e., fair) queueing in the switches, which is considered too expensive with current hardware technology. Credit-Based Flow Control The credit scheme proposed to the ATM Forum sends information about the available buffer space independently on each link of the network and is thus a link-by-link window flow control approach. There are two phases in flow controlling a VC: a buffer allocation phase and a credit control phase. In the buffer allocation phase, a certain number of cell buffers are reserved on each link for each VC at the receiving end of the link. In the credit control phase, the sending end of each link maintains a nonnegative credit balance to ensure no overflow of the allocated buffer in the receiving end of the link and deduces its current credit balance for the VC by the one in every data cell transmit. Specifically, the sending end of each link needs to receive credits for the VC from the receiving end of the link before forwarding any data cell over the link. At various times, the receiving end sends credits to the sending end indicating availability of buffer space for receiving data cells of the VC, thus avoiding congestion. After having received credits, the sending end is eligible to forward some number of data cells of the VC to the receiving end according to the received credit information. Therefore, if a VC runs out of credit on a particular link, it will stop transmitting cells. As cells are removed from the buffer at the receiving end, credits are returned on each VC to the sending end. Exhibit 4-7-6 illustrates a credit scheme in a network with one congested queue where VC1 has run out of credit on the inter-switch link. Each VC has a separate buffer at each switch.
The per-VC link-by-link flow control mechanism can prevent cell loss because connection cannot send cells unless it has credit. Among other advantages, such as maximal link utilization and fairness, it also relieves the transient congestion effectively using a link-by-link fast feedback mechanism. However, the per-VC link-by-link flow control requires per-VC buffering at the switches, which results in considerable hardware complexity. In addition, the requirements imposed on the switch architectures by the credit schemes also limit flexibility in vendor implementation. These are the main reasons why the ATM Forum chose a rate-based scheme for the ATM standards instead of a credit-based scheme for the support of ABR service. Rate-Based Flow Control A rate-based scheme uses feedback information from the network to specify the maximum rate at which each source can emit cells into the network on every VC. The idea of directly controlling the rate of a traffic source was first introduced into the realm of protocols for data networking in the ANSI Frame Relay standard. Two bits in the header of a frame relay packet are optionally used by the network to indicate congestion. To adjust window sizes, the DECnet protocol uses a rate-based analog of the Ramakrishnan-Jain algorithm. In this algorithm, a binary bit is used to make a decision whether to increase the current window size by a fixed amount or to decrease it by an amount proportional to the current window size at fixed intervals. This results in a linear increase or exponential decrease of the window size as a function of time. When a network is congested, it signals the congestion in the forward direction through a single bit congestion indicator in each packet. Upon receiving a single bit congestion indicator, the destination copies it into acknowledgment packets and sends them to the source. A source uses this information to adjust window sizes. Therefore, the Ramakrishnan-Jain algorithm is an end-to-end feedback loop. In a rate-based scheme, there are three kinds of feedback mechanisms: negative polarity feedback, positive polarity feedback, and bipolar feedback. A negative polarity feedback requires sending RM cells for decrease but not on increase. Conversely, a positive polarity feedback requires sending RM cells for increase but not on decrease. If RM cells are sent for both increase and decrease, the algorithm would be called bipolar feedback. The following sections discuss several key developments of the rate-based scheme for the support of the ABR service, including their advantages and disadvantages.
|
![]() |
|
Use of this site is subject certain Terms & Conditions. Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details. |